package com.guoranhao.business.model;

import com.guoranhao.tool.model.BaseModel;
import com.guoranhao.tool.model.CommonConstants;
import com.guoranhao.tool.model.FieldComment;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@Accessors(chain = true)
public class CyAddress extends BaseModel {
    /**
     * 主键
     */
    @FieldComment(value="主键")
    @NotNull(message="主键")
    private Long addressId;

    /**
     * 地址所属用户id
     */
    @FieldComment(value="地址所属用户id")
    @NotNull(message="地址所属用户id")
    private Long userId;

    /**
     * 收货人
     */
    @FieldComment(value="收货人")
    @NotNull(message="收货人")
    private String receiverName;

    /**
     * 收货人手机
     */
    @FieldComment(value="收货人手机")
    @NotNull(message="收货人手机")
    private String receiverPhone;

    /**
     * 省、市和县或区组合
     */
    @FieldComment(value="省、市和县或区组合")
    @NotNull(message="省、市和县或区组合")
    private String areaAddress;

    /**
     * 区或县编码
     */
    @FieldComment(value="区或县编码")
    @NotNull(message="区或县编码")
    private String areaCode;

    /**
     * 详细地址具体到门牌号
     */
    @FieldComment(value="详细地址具体到门牌号")
    @NotNull(message="详细地址具体到门牌号")
    private String detailAddress;

    /**
     * 是否是默认地址 （1：是  0：否）
     */
    @FieldComment(value="是否是默认地址")
    @NotNull(message="是否是默认地址")
    private Integer defaultAddress;

    /**
     * 创建时间
     */
    @FieldComment(value="创建时间")
    @NotNull(message="创建时间")
    private Date createDate;

    /**
     * 创建人ID
     */
    @FieldComment(value="创建人ID")
    @NotNull(message="创建人ID")
    private Long createUserId;

    /**
     * 最后修改时间
     */
    @FieldComment(value="最后修改时间")
    private Date lastModifyDate;

    /**
     * 最后修改时间
     */
    @FieldComment(value="最后修改时间")
    private Long lastModifyUserId;

    public void initWithDefaultValue() {
        this.userId = 0L;
        this.receiverName = "";
        this.receiverPhone = "";
        this.areaAddress = "";
        this.areaCode = "";
        this.detailAddress = "";
        this.defaultAddress = 0;
        this.createDate = CommonConstants.NULL_DATE;
        this.createUserId = 0L;
        this.lastModifyDate = CommonConstants.NULL_DATE;
        this.lastModifyUserId = 0L;
    }
}